package com.aracky.assess.service;

import com.aracky.assess.model.entity.HrKpiUserAssessorConfig;
import com.aracky.assess.model.request.HrKpiUserAssessorConfigRequest;
import com.aracky.assess.model.request.UserAndAssessorConfigDetailRequest;
import com.aracky.assess.model.vo.HrKpiUserAssessorConfigPageListVo;
import com.aracky.assess.model.vo.HrKpiUserAssessorConfigVO;
import com.aracky.assess.model.vo.UserAndAssessorConfigDetailVo;
import com.aracky.common.vo.PageVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 考核关系配置表 服务类
 * </p>
 *
 * @author zzp
 * @since 2022-08-01 09:43:18
 */
public interface HrKpiUserAssessorConfigService extends IService<HrKpiUserAssessorConfig> {
    /**
     * 列表查询
     * @param hrKpiUserAssessorConfigRequest
     * @return
     */
    PageVO<HrKpiUserAssessorConfigVO> getHrKpiUserAssessorConfigList(HrKpiUserAssessorConfigRequest hrKpiUserAssessorConfigRequest);

    /**
     * 分页查询出员工考核关系列表信息
     * @param hrKpiUserAssessorConfigRequest
     * @return
     */
    PageVO<HrKpiUserAssessorConfigPageListVo> getPageList(HrKpiUserAssessorConfigRequest hrKpiUserAssessorConfigRequest);

    /**
     * 根据id，查询员工考核关系信息
     * @param id
     * @return
     */
    HrKpiUserAssessorConfigPageListVo getMyById(Long id);

    /**
     * 分页查询员工和考核关系信息详情
     * @param userAndAssessorConfigDetailRequest
     * @return
     */
    PageVO<UserAndAssessorConfigDetailVo> getPageUserAndAssessorConfigDetail(UserAndAssessorConfigDetailRequest userAndAssessorConfigDetailRequest);

    /**
     * 根据员工id查询出员工考核关系信息
     * @param userId
     * @return
     */
    HrKpiUserAssessorConfigPageListVo getByUserId(Long userId);

    /**
     * 通过id进行修改考核关系
     * @param hrKpiUserAssessorConfig
     */
    void myUpdateById(HrKpiUserAssessorConfig hrKpiUserAssessorConfig) throws Exception;
}
